package com.demo.java.OD201_250.OD247;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【服务依赖】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146027923
 */
public class OdMain {
    // 存储服务依赖关系
    public static List<String[]> list = new LinkedList<>();
    // 存储异常服务列表
    public static List<String> errSer = new LinkedList<>();
    public static Set<String> errSet = new LinkedHashSet<>();

    public static void main(String[] args) {
        // 读取输入
        Scanner sc = new Scanner(System.in);
        String[] strs = sc.nextLine().split(","); // 读取服务依赖关系
        String[] err = sc.nextLine().split(",");  // 读取异常服务列表
        errSer = Arrays.asList(err); // 转换为List
        errSet.addAll(errSer); // 将异常服务添加到Set中（去重）

        List<String> setSer = new LinkedList<>();
        // 解析依赖关系并保存
        for (String str : strs) {
            String[] temp = str.split("-"); // 拆分依赖关系
            list.add(temp); // 存储服务依赖关系
            String a = temp[0];
            String b = temp[1];
            // 如果服务不在异常服务中并且没有重复，加入到服务列表中
            if (!errSet.contains(a) && !setSer.contains(a)) {
                setSer.add(a);
            }
            if (!errSet.contains(b) && !setSer.contains(b)) {
                setSer.add(b);
            }
        }

        List<String> listTemp = new LinkedList<>();
        // 递归判断哪些服务可以启动
        for (String v : setSer) {
            if (!help(v)) {
                listTemp.add(v);
            }
        }

        // 如果没有可以启动的服务，输出 ","
        int len = listTemp.size();
        if (len == 0) {
            System.out.println(",");
        } else {
            String res = String.join(",", listTemp); // 将结果按逗号连接
            System.out.println(res);
        }
    }

    // 递归判断服务是否能启动
    public static boolean help(String s) {
        if (errSet.contains(s)) {
            return true; // 如果该服务是异常服务，返回true
        }
        for (String[] arr : list) {
            if (arr[0].equals(s) && help(arr[1])) { // 如果服务的依赖服务是异常服务
                return true;
            }
        }
        return false; // 没有依赖于异常服务，返回false
    }
}